An output waveform generated by a DAC is required by many applications to be a linear function of a digital code appearing at the DAC input. Indeed, the degree of such linearity is often considered to be a quality of merit of the DAC. For digitized music and other audio applications, for example, non-linearities in a DAC output may cause artifacts perceivable by the human ear as distortion.
However, other shapes of DAC output waveforms may be better suited to other applications. Another output waveform shape that may be desirable is that of a sine or cosine waveform. In bipolar stepper motors, for example, motor position is controlled by regulating the current in two motor windings, one such winding beginning at a position of 90 degrees from the other. For a smooth motion profile, the currents in the two windings are regulated in a sine and cosine fashion with respect to each other. For regulating this current, a sinusoidal reference voltage is generated using a sinusoidal DAC. A stepper motor is simply an example, however; any application requiring a sinusoidal waveform may use a sinusoidal DAC to generate the waveform digitally.
As the sinusoidal waveforms flatten out (e.g., as dv/dt approaches zero from any of the four quadrants), the step resolution required to accurately reproduce the sinusoidal waveform at that level is much higher as compared to the step resolution needed for a larger dv/dt that exists when the waveform is close to zero. In the case of an 8-bit sinusoidal DAC used in a bipolar stepper motor application, for example, the step resolution needed at the top is approximately 0.007 percent. When the winding current is close to zero, however, the resolution requirement significantly relaxes to approximately 1.2 percent for first step. Thus, in the example case of a bipolar stepper motor application, an 8-bit sine DAC required for 256-level micro stepping will have 1.2 percent of full scale as the biggest step size and 0.007 percent of full scale as the smallest step size. A 12-bit or higher linear DAC together with steering logic to select the input bit combinations resulting in a sinusoidal output would be required to achieve such a high dynamic range of resolution. The latter method wastes many bit combinations, may be significantly area intensive, and may require a high degree of layout precision and effort.